package cn.iocoder.yudao.module.system.dal.mysql.passengerinfo;

import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.passengerinfo.vo.PassengerInfoPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.passengerinfo.PassengerInfoDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 乘客信息 Mapper - 使用联表查询获取完整的用户和乘客信息
 * 
 * SQL定义在PassengerInfoMapper.xml文件中
 *
 * @author 芋道源码
 */
@Mapper
public interface PassengerInfoMapper extends BaseMapperX<PassengerInfoDO> {

    /**
     * 分页查询乘客信息（联表查询）
     * 
     * @param reqVO 查询条件
     * @return 乘客信息列表
     */
    List<PassengerInfoDO> selectPageWithJoin(@Param("reqVO") PassengerInfoPageReqVO reqVO);

    /**
     * 查询乘客信息总数（联表查询）
     * 
     * @param reqVO 查询条件
     * @return 总数
     */
    Long selectCountWithJoin(@Param("reqVO") PassengerInfoPageReqVO reqVO);

    /**
     * 根据用户ID查询乘客信息（联表查询）
     * 
     * @param userId 用户ID
     * @return 乘客信息
     */
    PassengerInfoDO selectByUserId(@Param("userId") Long userId);

    /**
     * 根据乘客信息ID查询乘客信息（联表查询）
     * 
     * @param passengerInfoId 乘客信息ID
     * @return 乘客信息
     */
    PassengerInfoDO selectByIdWithJoin(@Param("passengerInfoId") Integer passengerInfoId);

}
